package cn.wyj.basic.util;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class AjaxResult {
    // 返回是否成功
    private Boolean success;
    // 返回错误原因
    private String msg;

    private Object resultObj;


    // 一个静态的获取对象的方法
    public static AjaxResult me() {
        return new AjaxResult();
    }

    // 写两个给对象调用的方法，给后面将true 和 msg 一起赋值提供依赖
    public AjaxResult setSuccess(Boolean success) {
        this.success = success;
        return this;
    }

    public AjaxResult setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    public AjaxResult setResultObj(Object resultObj) {
        this.resultObj = resultObj;
        return this;
    }

    // 这两个方法，给外面调用，一起给success和msg赋值
    public AjaxResult success() {
        return AjaxResult.me().setSuccess(true).setMsg("请求成功");
    }

    public AjaxResult success(Object resultObj) {
        return AjaxResult.me().setSuccess(true).setMsg("请求成功").setResultObj(resultObj);
    }
    public AjaxResult fail() {
        return AjaxResult.me().setSuccess(false).setMsg("请求失败");
    }
    // 错误原因可能会变，写一个方法重载
    public AjaxResult fail(String msg) {
        return  AjaxResult.me().setSuccess(false).setMsg(msg);
    }
}
